#ifndef NRMM_H
#define NRMM_H

#include "Matrix.h"

void sdmult_mv(SEXP X, double *b, int trans, double *out);
CHM_SP scrossprod(CHM_SP x, int trans);
void update_eta(SEXP X, double *beta, double *eta);
void update_prob(double *eta, double *prob, int *gid, int *nalt, int nP);
void rmm_update_prob(SEXP ans, double *beta);
void rmm_update_llik(SEXP ans);
void rmm_update_hess(SEXP ans);
void rmm_update_estep(SEXP ans, double *beta, double *pi, double *W);
void do_nrm_mm(SEXP ans, double *beta);
void do_nrm_nr(SEXP ans, double *beta);
SEXP R_do_nrmm(SEXP ans);
SEXP R_rmm_update_prob(SEXP ans);
SEXP R_rmm_update_hess(SEXP ans);
SEXP R_rmm_update_llik(SEXP ans);

#endif
